1. Field of the Disclosure
The invention deals with cloud computing, and more particularly with migrating, operating, and managing existing software environments from data center-based computing resources to cloud computing platforms.
2. Background
Cloud computing embraces the concept of providing computer resources as a third party service. Resources include storage, networking, and processing. Different cloud implementations offer different variations of available services. Commercial benefits include paying based on actual resources used, dynamic access to resources based on usage demands, and third party management of computing resources. Drawbacks include requirements to modify applications or operating environments to connect to a cloud provider, limitation to a specific cloud provider based on proprietary APIs, and third party control of computing resources. Third party control may introduce risks or questions about the security of data and the network.
Utilization of cloud computing resources is at various levels as provided at a platform level and as utilized by customers. There are strong economic incentives to utilize cloud resources, as local software solutions often require available hardware resources to meet maximum loads for every individual application or server. As such, local servers generally run without maximum resource usage. Moving to a cloud model allows a cloud provider to dynamically allocate resources based on current load, and charge only for specific usage. Thus a cloud customer removes both management costs and concerns of maintaining local hardware and avoids costs of provisioning hardware that may mostly be under-utilized except during high load spikes. While attractive due to management and utilization efficiencies, there are costs associated with moving existing applications to cloud platforms or configuring them to work with clouds. Complexity may range from recompiling an application for a specific platform to substantial code modifications to access and utilize cloud APIs. In addition to costs associated with moving applications to a new platform, there may be additional costs or overhead involved if utilizing the cloud changes how an existing application may be accessed. Adding or altering access methods for users may entail company-wide policy changes and retraining, which may be a significant hurdle preventing cloud utilization. Further, changes may be required to secure data, devices, and communications. Applications run within closed or secure networks, or connected to identifiable and secure hardware, may operate without securing each individual communication or data transaction. Cloud access is generally over the Internet, rather than restricted to internal access, and hardware resources and connections may be fully under third party control. Thus applications may need to add or implement security solutions protecting all data, network, and other device access calls once an application is moved to a cloud. Current products have taken different paths in attempts to address these problems and reduce the barriers to cloud utilization.
3. Description of Prior Art
Some products allow for cloud creation, allowing a company to run its own cloud. This addresses security and trust control, but does not maximize available cloud resources or the benefits of third party management, nor ease migration of existing applications in the cloud. Similarly, some products are designed to allow a customer to build a grid/cloud with a set of unique capabilities. These technologies are designed to allow seamless scaling of an application across a large pool of resources. To allow such scaling, the internal cloud must be scaled to handle peak resource utilization, and thus is less than fully utilized outside of the peak periods. Often the maximum resources must be allocated to equal the sum of the peak utilization of everything operating within the cloud, which leads to the management and cost burden of maintaining a full set of resources which may be lightly loaded for most of the time.
Other products help create new applications for the cloud and ease cloud adoption. At a first level, they access cloud application programming interface's (API's) to enable provisioning servers and using clouds. Users then define or build new applications utilizing templates to deploy applications to one or more clouds. In general, these products focus on building or delivering an application to a cloud—they create a standalone server or collection of servers in the cloud. The focus is to allow simplified horizontal scaling, or to create new application or services in or for the cloud rather than moving existing applications.
Additional products focus on tools and packaging to manage applications for the cloud. This is best described by building packages, environments, and components into a server that can be deployed to a specific cloud. The application can then be recompiled for a different cloud. These products provide tools and environments for packaging and deploying application to the cloud. The technology works by adding (or subtracting) components from the existing operating environments such that they can run in the cloud. They generally focus on altering existing applications to enable a move to a cloud. These solutions generally tie an application to a specific or individual cloud. Packaging solutions rebuild application images for each cloud, but do not account for data movement or modifications made directly to the application once deployed to the cloud, and therefore lock applications to the specific cloud.
Some products focus on providing more detailed monitoring of cloud resources. Generally, these are third party monitoring services. They enhance cloud monitoring capabilities, but are narrowly focused on that single aspect.
Similarly, some products provide control consoles (or portals) for the clouds. Their focus is to provide a simplified graphical interface for controlling and monitoring resources in the cloud. These are generally third party services, customized for cloud operation, and are narrowly focused to the control interface.
Some solutions provide cloud services (actual compute and storage resources) and products that enable customers to take advantage of these resources. These products are restricted to operate against resources that are managed by their specific software. These products require the cloud provider to install their components as part of the cloud or the whole cloud.
Some solutions focus on providing the capability to bridge the network between the cloud and the data center. Current solutions include inserting VPN software into the end users operating environment, or providing the ability to remotely connect to cloud deployments without completely integrating with existing data centers.
Some solutions enable virtual machines to be converted between underlying cloud formats (i.e. between hypervisor formats, and cloud specific functions). Some of these operate by recompiling an application for different clouds. Others convert the virtual machine image format so that they can be deployed into different cloud environments. The current solutions alter the users operating environment in order to allow them to execute in the different cloud environments.
United States Patent Application 2008/0080526 “Migrating Data to New Cloud” (Alexander G. Gounares et al., Apr. 3, 2008) discloses, in the Abstract, “a system and/or a method that facilitates preserving and maintaining data and/or services associated with a network service. The network service can be any collection of resources that are maintained by a party (e.g., third-party, off-site, etc.) and accessible by an identified user over a network (e.g., WAN, Internet, etc.). An interface component can receive a termination notification related to the network service. An executor component can relocate at least a portion of one of data and a service associated with the terminated network service to a disparate replacement network service in order to preserve any services and/or data related therewith.”
United States Patent Application 2008/0082667 “Remote Provisioning of Information Technology” (Henricus Johannes Maria Meijer et al., Dec. 20, 2006) discloses, in the Abstract, “Hardware, software, service and/or expertise can be moved from on-premise to a remote location (e.g., central, distributed . . . ). Accordingly, at least a large degree computation can be moved to the center to exploit economies of scale, among other things. In such an architecture, computational resources (e.g., data storage, computation power, cache . . . ) can be pooled, and entities can subscribe to a particular level of resources related to a private entity IT network.”
The existence of these varying solutions, and of varying cloud platform standards and options, adds an additional burden of cross-cloud compatibility. While a cloud-specific implementation may meet a customer's need, it may prove insufficient should it become beneficial to move the implementation to a different cloud platform. Such a move could be triggered by new cloud availability, new cloud offerings or supported technology, performance enhancements or degradations of existing clouds, new pricing for cloud resources, or failure or cessation of services of an existing cloud provider.
What is needed is a solution which provides network and data security without requiring third party trust, enables migration and operation of existing applications to and from a data center to any cloud without altering the application or user environment, monitoring of cloud performance integrated into the existing user environment, and utilization of multiple available clouds and cloud resources to maximize performance.